Seybold AppMan White Paper

[Press Releases | Careers | Products | Corporate Info | Doing Business | Services | Home Page]

Patricia Seybold Group

Providing Strategic Guidance for Open,
Client/Server, and Distributed Computing



Direct Application Management

Direct Management of Application Modules Solves a Crucial Need


John R. Rymer

December 1995



Prepared for Unify Corporation



148 State Street, 7th Floor, Boston, MA 02109 (617) 742-5200 Fax: (617) 742-1028

Direct Application Management

Direct Management of Application Modules Solves a Crucial Need

John R. Rymer

Executive Overview and Summary


Client/Server Applications Demand Direct Management The spread of client/server applications is driving new approaches to management. Conventional network & systems management products have proven incapable of managing client/server modules. The alternative is direct application management. Direct application management is the monitoring, control, and tuning of the software modules that make up client/server applications. Direct application management gives application developers the opportunity to create robust, production-quality client/server applications by building management into their code
Direct Application Management Is a New Approach A direct application management architecture automates the collection and forwarding of appropriate information about an application to consoles and other tools. In direct application management, developers decide which information about the modules they create is made available to agents. A complete direct application management solution meets six requirements. First, the architecture automates and simplifies the generation of application-specific management events and performance data. Second, the architecture supports many applications utilizing a variety of platforms. Third, the architecture integrates well with external management consoles and other applications. Fourth, the architecture scales to support large environments. Fifth, the architecture is easy to extend to address new management systems and new types of management data. Sixth, the architecture addresses all of the five management disciplines: fault, performance, configuration, security, and accounting management.
Four Approaches-One Is Best Organizations have to choose from among four alternative architectures to manage their client/server environments. The first of these architectures relies on conventional network & systems management products, such as Hewlett-Packard OpenView and Sun's Solstice. The second alternative is application management APIs. The third is database-server management products. And the fourth is emerging application management architectures. Of the four, the last one is best suited to user requirements for client/server management. Only comprehensive application management architectures are designed to solve the complex problem of client/server application management. Unify's AppMan is a prototypical application management architecture, and it deserves serious consideration from user organizations considering client/server management solutions.

Introduction: A Crucial Need in Client/Server Applications


Management Must Be Built Into Client/Server Applications Managing client/server applications is akin to playing detective. In both cases, accurate knowledge about the cause of an occurrence is hidden in evidence, from which you must infer the facts. In detective work, a confession from the suspect is preferred as the most direct way to the truth. In client/server application management, direct management of application code is preferred to piecing together causes and effects from various log files and protocol dumps. (See Illustration AM-1.) Today, organizations manage client/server applications using technologies designed to watch over and configure network devices and operating systems. The problem is that these conventional network & systems management technologies provide only indirect ways to monitor, control, configure, and optimize application modules. Applications exhibit behavior that can't be understood by studying network & systems management data. When applications misbehave, and network/systems management professionals must sift through hundreds or thousands of management events to find the cause of the problem. The result is high costs and frustrated users. Conventional technology makes client/server application management an expensive proposition. Like successful detective work, indirect management requires individuals that are highly trained, experienced, and very skilled.


Direct vs. Indirect Application Management



Illustration AM-1. Direct management of client/server applications builds management right into application code. The result is more efficient monitoring, control, configuration, and optimization of client/server applications.
The complexity of client/server applications is one reason that conventional management technology is failing in application management. Client/server designs break applications into two or more pieces: at minimum, a desktop "client" and a database server. The trend is toward designs in which an application is a collection of many components, some of which are developed in-house and some of which are acquired from third parties. Operational personnel can't modify the third-party pieces to make them manageable. The only practical alternative is to build management into those modules.
High costs, frustrated users, and the increasing use of client/server applications in mission-critical roles are driving a change in management technology. The change: Make application management direct rather than indirect. Using direct application management, developers build management into client/server modules. This approach allows network/systems management professionals to, for example, extract "confessions" directly from client/server applications rather than having to piece together the cause of a problem from evidence. The result will be the first effective management of client/server applications, lower costs, and increased user satisfaction.
Developers Must Become Participants in Application Management The advent of direct application management gives application developers new opportunities to create robust, production-quality client/server applications. However, direct application management requires new thinking by application developers, and by the vendors of applications development tools. Indeed, direct application management requires active participation of the development community. Network and systems management professionals and vendors of traditional management products cannot complete the shift to direct management by themselves.
There are four alternative approaches emerging for IS management and developers to choose from. The four are:
  1. Integrated network & systems management with event correlation.
  2. Application management APIs.
  3. Database server management.
  4. Comprehensive management architectures.
Unify Corp. is one of the few application development tool vendors to address the need for direct application management. Unify's AppMan provides one of the few comprehensive architectures available. The comprehensive management architecture approach is the strongest of the four alternatives. This White Paper outlines the new field of direct application management, the requirements, and the approaches available to users. It concludes with an overview of Unify's AppMan architecture for comprehensive direct application management.

The New Field of Direct Application Management


What is Direct Application Management? Direct application management is the monitoring, control, and tuning of the software modules that make up user applications. A direct application management architecture automates the collection and forwarding of appropriate information about an application to consoles and other tools. Direct application management is based on the concepts of managed objects, agents, and managers. The network management community has used those three concepts for many years. (See Illustration AM-2.) Agents collect management information from managed objects, and forward that information to managers for presentation and analysis by management professionals. Many in the industry think of managed objects as network devices, which passively contribute management data. However, managed objects may also be intelligent software modules that are active generators of management information about themselves.


Manager-Agent Architecture


Illustration AM-2. In the manager-agent architecture, agents collect management information from managed objects, and forward that information to managers for presentation and analysis by management professionals. The lines in the diagram represent management protocols, such as the Simple Network Management Protocol (SNMP) used in TCP/IP networks. Direct application management uses this proven architectural approach.
In network management, vendors decide which management information is made available to agents. In direct application management, developers decide which information about the modules they create is made available to agents. Developers, for example, can flag events that will help prevent failure of the application. Examples of application management information include:
  • Application is out of memory.
  • Datatype mismatch between two operands.
  • Record-locking conflict encountered.
  • Database deadlock has occurred.
  • Application log files are full.
Developers can also expose key performance indicators for their code. One such indicator might be the volume of messages handled by an application server during a given period of time.

The Five Disciplines of Direct Application Management Failure, or fault, management and performance management are two of five "disciplines" associated with the manager-agent architecture. Management disciplines are categories of management information and the actions associated with that information. The five disciplines are:
  • Fault management
  • Performance management
  • Application configuration management, including software distribution.
  • Security management
  • Accounting management, including software asset management.
Each of these disciplines requires agents to gather information about the status of the application and then pass that information to a console. For example, event agents typically manage fault and error information. Performance management agents specialize in information and actions associated with application performance monitoring and tuning. Accounting management is usually reflected in inventory management agents. Direct application management requires a comprehensive architecture. Piecemeal management applications are not enough. Microsoft, in particular, has helped to identify software distribution and desktop software configuration management as "application management." As is apparent from the list above, software distribution and configuration management are only one aspect of a complete management architecture.


Direct Application Management Must Fit Into Existing Management Structures Products that seek to provide direct application management must fit into existing management systems. Organizations have already installed a wide variety of conventional network and systems management products. These products range from Hewlett-Packard OpenView, Sun's SunNet Manager, IBM's SystemView, and other Simple Network Protocol Manager (SNMP) products to BMC's Patrol, Tivoli Enterprise Console, Courier, and Sentry, HP's OperationsCenter, and other systems management products. Fortunately, all vendors of network, system, and application management products employ the manager- agent architecture. In many cases, these products use either standard formats and protocols or published APIs, which allow them to accommodate application-specific management information.


The Missing Link: Development Tools That Support Application Management The current environment sets the stage for direct application management. The architecture (manager-agent) is well-understood. The formats and protocols are available. The missing ingredient is development tools designed to support direct application management. These tools began to appear in the market during 1995. However, as these products rolled out, it has become apparent that not all application management solutions are created equal. Some of the tools that support external monitoring and control of application modules don't fit into existing management environments. Others address only a subset of the functions required for direct application management. The pitfalls in choosing an incomplete or inadequate solution are serious for application developers and their colleagues in network and systems operations.

Requirements of Direct Application Management


Six Requirements for a Complete Approach A complete solution for direct application management meets the following six requirements.
  1. Simple generation of application-specific management events.
  2. Architecture for multiple applications.
  3. Support for external management systems.
  4. Scaleable architecture.
  5. Easily extensible architecture.
  6. Comprehensive architecture.
Requirement #1: Simple Generation of Application
Specific Events
IDEAL: AUTOMATIC GENERATION OF EVENTS AND PERFORMANCE METRICS. The ideal solution will provide many events automatically, and then make it easy for developers to design custom events. In most organizations, application development and network/systems operations are separate organizations. Application developers typically design and build their applications, then "toss them over the wall" to operations groups for deployment and ongoing maintenance. Direct application management requires that application developers take a greater degree of responsibility for the management of their code by identifying the key management events associated with that code. Application developers must be able do so without having to become systems management gurus. The top requirement of direct application management solutions, then, is to make identification and generation of application-specific management events and performance metrics straightforward for developers. To developers, productivity is a key concern. Developers will avoid-or even reject-direct application management solutions that get in the way.
Requirement #2: Architecture for Multiple Applications UNDERSTANDING INTERRELATIONSHIPS IS ESSENTIAL. Application modules share use of client/server resources, and management professionals must be able to see and understand the resulting interrelationships between applications. In the old days of network and systems management, single-system monitoring utilities were the rule. Network operations centers typically were cluttered with monitors, each displaying statistics or readings from a different "key" network device. This approach ignored the important relationships between network devices. A condition in one device often caused slowdowns or failure in other devices. SNMP was created to allow management information from many network devices to be collected and manipulated by a single manager, which became commonly known as a management console. Today's network management center typically employs one or two powerful consoles to manage complex webs of devices and other facilities. The same principle applies to direct application management. Systems for monitoring, control, and tuning of single applications only will quickly add up to an unintegrated mess. Multiple consoles are impractical in direct application management for the same reason they didn't work in network management. The best direct application management solutions are designed as general architectures, not single application monitors.
Requirement #3: Support for External Management Systems BEST SOLUTIONS INCLUDE SUPPORT FOR MULTIPLE CONSOLES, PCs, AND PRE-BUILT AGENTS. Organizations will not tear out their existing management environments to implement direct application management. Rather, direct application management must extend and leverage current management environments. Thus, a key requirement of direct application management solutions is support for external consoles and related systems. The manager-agent architecture provides the foundation for this support. Application-specific events can be forwarded to agents that represent the external system. However, not all solutions support external management systems equally well. The support varies along three dimensions:
  • Number of Management Consoles and Applications. The market in network and systems management products is wide open. None of the major vendors is yet dominant, although there are some clear leaders. This fact of the market means that direct application management solutions must be designed to support many management consoles and applications. Solutions that are designed to support a single vendor's architecture or API are not adequate in today's varied environment.
  • Support for PCs. Client/server applications employ a number of different computing platforms. Direct application management solutions must provide agents that run on these platforms. The most troublesome of the major platforms is the PC. Many of today's agents don't run on PCs. However, most applications employ PCs on the front end. In the future, all PCs will be equipped with the Desktop Management Interface (DMI), a de facto agent. However, during the immediate future, direct application management solutions will have to provide their own agents for PCs.
  • Number of Pre-built Agents. APIs require expertise, and expertise costs money. There's a big difference to the end user organization between solutions that expose APIs to external management systems and those that provide pre-built agents. APIs require the developer to expend significant effort to build management into each application. Solutions that provide pre-built agents have much greater value to user organizations than those that provide only an API.
Requirement #4: Scaleable Architecture CRUCIAL: PRIORITIZATION AND FILTERING OF EVENTS. Some direct application management solutions simply make management events available to external consoles. These solutions can swamp a management environment with new data. Other solutions are designed to receive and prioritize application-specific management events and performance metrics, and forward appropriate information to consoles. The latter approach offers prioritized data, and is likely to scale more efficiently. A general-purpose architecture must be able to grow to accommodate increased volumes of data, users, and managed objects. In direct application management, scalability is determined by a solution's ability to handle a rising tide of management data. Data is delivered via management events, with a frequency that ranges from multiple events per second to one event per minute or so. Inevitably, the volume of management data grows dramatically as organizations deploy new applications and update existing applications.
Requirement #5: Easily Extensible Architecture REQUIRED FOR EXPANSION: EASY ADDITION OF NEW AGENTS. Extensibility addresses expansion of a management environment with new applications, new management events, and new external management facilities. Despite all of the talk about "open APIs," extensibility remains the best test of any technology's openness, and direct application management solutions are no exception to this rule. To meet the challenge of extensibility, a direct application management solution must allow user organizations to easily add new agents and even to create agents to accommodate special requirements. In addition, developers must be able to create new management events to represent the important states and performance of their application modules.
Requirement #6: Comprehensive Architecture KEY: ARCHITECTURE MUST ADDRESS ALL FIVE DISCIPLINES. The last requirement for application management is support for the five management disciplines: fault management, performance management, configuration management, accounting management, and security management. Most organizations make fault management their highest priority, reasoning that dealing with failures is the first order of business. However, as important as fault management is, it cannot be the limit of function in a direct application management solution. Performance management is equally important because user satisfaction with an application is usually defined by that application's performance. The same is true for the many solutions that focus on software distribution today. Software distribution and configuration management are important, but not a full solution.

Four Approaches to Application Management


Categorizing a Confusing Array of Alternatives The market in management products and technology offers a wide variety of confusing alternatives for direct application management. Network and systems management specialists are moving to add application-management features and functions to their products. Vendors of middleware, databases, and other client/server facilities are adding monitoring and control products and features. Microsoft is promoting its software distribution functionality. A handful of development tools vendors are expanding their products to address direct management of application modules. In all of the products and architectures becoming available, however, four major alternatives are apparent. The four major alternatives are:
  • Integrated network & systems management with event correlation.
  • Application management APIs.
  • Database server management.
  • Application management architectures.
Our preference is the fourth alternative: Comprehensive application management architectures.


Approaches #1 and #2


Illustration AM-3. Approaches #1 and #2 are illustrated above. Approach #1 employs an SNMP network management console and agents to monitor and control log files, caches, disks, and other operating systems facilities. The information obtained from the network and systems facilities is then fed into an event correlation engine that matches sequences of events to likely causes. The management console obtains no information directly from database servers or application modules. In Approach #2, application modules transmit information to a console via a special API. The solution may or may not also import information from databases, systems, and network devices. The API provides a raw capability to developers, but is difficult to use.
Approach #1: Network & Systems Management With Event Correlation DESCRIPTION OF THE APPROACH. The first approach available in the market is to use conventional network and systems management products with event correlation to monitor and control applications. (See Illustration AM-3.) The approach employs an SNMP network management platform and agents to monitor and control log files, caches, disks, and other operating systems facilities. The information obtained from the network and systems facilities is then fed into an event correlation engine that matches sequences of events to likely causes. The user organization must usually define the majority of the formulae used to correlate events. Defining event correlation formulae can be a painstaking task requiring great skill.
EFFECT ON APPLICATION DEVELOPMENT. Most application developers will have minimal involvement in Approach #1. Developers will be called upon to describe how their application code interacts with operating systems and network resources. Management specialists will then use this information to design either agents, event correlation formulae, or both to manage the application.
PRIMARY PROMOTERS. The vendors that promote use of conventional management with event correlation are those that sell so-called management platforms: HP, IBM, Sun, and others. These vendors are trying to expand the range of resources they can manage beyond their current base in network device management. Their primary goal is to accommodate a wide variety of management information obtained from a number of protocols and other sources. Event correlation is the technique for extracting meaning from diverse management data.
HOW APPROACH #1 STANDS UP TO THE CRITERIA. The first approach-conventional network & systems management-doesn't adequately provide the six functions required for application management.
  1. Simple Generation of Application-Specific Events. Conventional network & systems management products do not generate application-specific events at all. For developers to define application-specific events, they must write code using management protocols. This coding is difficult.
  2. Architecture for Multiple Applications. Conventional network & systems management products typically don't recognize custom-built applications. Rather, they manage devices and systems. The architectures of these products can be extended to address applications, but vendors simply haven't done so.
  3. Support for External Management Systems. Theoretically, conventional network & systems management products are very open. They use the vendor-neutral SNMP and CMIP management protocols to collect information. In fact, interoperability of consoles isn't quite as open as users would like. Conventional network & systems management products tend to be built either for PCs, Unix, or mainframes. Few of the major products address all of these platforms. Lastly, most conventional network & systems management products ship with pre-built agents only for a handful of network devices and server operating systems.
  4. Scaleable Architecture. This is a strong point for conventional network & systems management products. The architectures on which they are based can scale to address an array of devices, systems, and other resources. Unfortunately, none of the vendors have made application management a priority.
  5. Easily Extensible Architecture. Conventional network & systems management products are not easy to extend into application management. The pre-built agents for these products manage network devices and server operating systems. To attain application management, the user must build agents.
  6. Comprehensive Architecture. Conventional network & systems management products don't support direct management of application modules. In addition, they tend to stress only fault management and configuration management.
Approach #2: Application Management APIs DESCRIPTION OF APPROACH #2. The API approach employs a published interface for collecting management information from applications and controlling their deployment and ongoing operation. (See Illustration AM-3.) The interface defines a data model for use in describing the application, its components, and key management data, a file format to store and distribute information about the application, and conventions governing use of the API. An application management API must be implemented by back-end management platforms and applications to be useful. Developers employ the API to forward monitoring, control, and tuning information about their applications to these back-end applications, and to transmit commands and data values from management applications to the application itself. Most application management APIs are closely associated with a single vendor's management products.
EFFECT ON APPLICATION DEVELOPERS. Application developers can employ application management APIs in two ways. First, they can use bundled functionality within their applications. For example, an API may provide a generic log file monitor that the developer can use to provide access to status information about the application. Second, APIs support creation of custom events and management tasks by developers. This programming is difficult and time-consuming. The developer must undertake the programming for each application.
PRIMARY PROMOTERS. The primary promoters of application management APIs are Tivoli, BMC Corp., HP, and other systems management vendors. These vendors hope to expand beyond system administration to application management. Microsoft is also promoting the API approach with its System Management Server (SMS).
HOW APPROACH #2 STANDS UP TO THE CRITERIA. The application management API is surprisingly weak when measured using the six requirements.
  1. Simple Generation of Application-Specific Events. Application management APIs give developers the means to generate application-specific events, but the task is by no means simple. Developers must hand code each event for each application. There's no automatic generation of events in the API approach.
  2. Architecture for Multiple Applications. Architecture is a strong point for the application management API approach. The APIs seek to establish a common comprehensive standard that will support multiple running applications for development tool vendors and users.
  3. Support for External Management Systems. In theory, application management APIs will support a wide variety of external management systems. In practice, each of the APIs is associated with a particular vendor's application and systems management products today. Adopting an API today means the user commits to one vendor's support for that API in products. There's a risk of choosing a dead-end solution. Regarding platform coverage, APIs are neutral. Implementors of the API must build support for relevant platforms. The same is true of pre-built agents. Existence of an API doesn't guarantee availability of relevant pre-built agents.
  4. Scaleable Architecture. Scalability is an implementation problem. Application management APIs themselves don't address scalability. That's up to the vendors that build products using the APIs.
  5. Easily Extensible Architecture. To extend the management APIs, developers must use low-level protocols and formats. Extension is not a trivial task.
  6. Comprehensive Architecture. Management APIs tend to focus on two or three of the five disciplines. There is no guarantee of comprehensive coverage of the five disciplines.

Approaches #3 and #4


Illustration AM-4. Approaches #3 and #4 are illustrated above. In Approach #3, a special console and agent monitors database servers, and collects performance information from them as well. The approach is blind to application modules. In addition, information from client and server operating systems and network devices is typically treated separately. Approach #4 is the ideal solution. The approach provides for automatic generation of management information and pre-built agents to interact with management consoles. Because management consoles are built by third parties, users can merge application management information from data obtained about databases, operating systems, and network hardware.
Approach #3: Database-Server Management DESCRIPTION OF APPROACH #3. The third application management option is database-server management products. All of the major database vendors have fairly sophisticated products to help database administrators (DBAs) monitor, control, and tune database servers from a single console. These management products can be adapted to the challenge of application management. Several of the vendors are adding configuration management and software distribution for clients to their database server management products, for example. Most vendors also plan to add performance management features as well. (See Illustration AM-4.)
EFFECT ON APPLICATION DEVELOPERS. Database-server management products are primarily designed for use by DBAs. Application developers will have limited involvement with the products. Database-server management products give developers only low-level APIs with which to define application-specific management data.
PRIMARY PROMOTERS. The major vendors of database servers promote Approach #3-for obvious reasons. The database vendors view database-server management as an opportunity to both improve the tools they provide to DBAs and an opportunity to build their franchises within customer sites. Oracle, for example, recently announced Workgroup Manager, a database-server management product that Oracle positions against Tivoli and Microsoft's SMS! Sybase's product is the Enterprise SQL Manager. Compuware's EcoTools division, BMC's Patrol group, and other third-party vendors promote a database-independent approach to server management.
HOW APPROACH #3 STANDS UP TO THE CRITERIA. Database-server management products are not a general-purpose solution for application management. These products manage modules that are resident in database servers only.
  1. Simple Generation of Application-Specific Events. Database-server management products don't generate events specific to any particular application. Rather, they generate events specific to databases.
  2. Architecture for Multiple Applications. Database-server management products are implicitly designed to support multiple database applications. Their coverage of the modules that make up those applications is limited to database-resident code, though.
  3. Support for External Management Systems. Database vendors view their server management products as proprietary features. Most database-server management products are closely tied to a single vendor's database technology. Most database-server management products support a limited number of external consoles. The emphasis in database-server management is Unix servers. These products don't address PCs. Database-server management products provide only the agents necessary to monitor and control database servers.
  4. Scaleable Architecture. The database-server management products are all designed to scale to cover multiple servers.
  5. Easily Extensible Architecture. Database-server management products are not easy to extend. To add agents to these products, the user organization must undertake a substantial systems-programming effort.
  6. Comprehensive Architecture. Database-server management products are focused on one element of client/server applications: database servers. These products also tend to support only fault and performance management, and leave the other three disciplines unaddressed.
Approach #4: Application Management Architectures DESCRIPTION OF APPROACH #4. The final approach is a comprehensive architecture to link the developer's environment-a development tool-and management environments-consoles and management applications. In this approach, developers define the management information important to understanding the operation of their code. Developers have two options to create these events. First, they can define management events using their familiar application development tools, not arcane APIs. Second, developers can use the events and statistics that have been pre-built by the vendor. In both cases, the development environment generates the required structures to represent the application, and then forwards management information to external management products for presentation and other actions. The mechanism for the interchange between the application and the external management products is an agent. This structure gives the architecture great flexibility. To add support for a new external management system requires only the addition of an agent to represent that system. The number of management functions supported by comprehensive application management architectures is limitless. (See Illustation AM-4)
EFFECT ON APPLICATION DEVELOPERS. The comprehensive application management architecture gives developers the ability to actively participate in monitoring and control of their applications. Developers participate by choosing which of the pre-built events provided by the vendor are best to manage the application. Developers can also create their own events when necessary. In effect, developers are helping to document their applications for the operations staff. Because the operations staff will get direct readings of the application's status, they'll be able to act on problems with greater speed and efficiency.
PRIMARY PROMOTERS. The primary promoters of the comprehensive application management approach are a handful of application development tools vendors. Several vendors are trying to deliver such architectures for their products. Unify is the first vendor to announce a comprehensive architecture for application management.
HOW APPROACH #4 STANDS UP TO THE CRITERIA. The comprehensive architecture approach is designed specifically to enable application management.
  1. Simple Generation of Application-Specific Events. Application management architectures automate the generation of application-specific events. Development tools are part of the architecture. Those tools can either automatically generate events and statistics or allow developers to create their own events and statistics using a familiar tool.
  2. Architecture for Multiple Applications. Application management architectures meet this criteria by design.
  3. Support for External Management Systems. Application management architectures assume that events and statistics will be fielded by third-party consoles and applications. The best architectures support many third-party products. Application management architectures are designed to support all major platforms. These architectures also include pre-built agents to support a variety of platforms and third-party management systems.
  4. Scaleable Architecture. Application management architectures are designed to support large-scale environments. The architectures include data filtering and prioritizing functions that reduce the amount of management data processing required of the console and applications.
  5. Easily Extensible Architecture. Easy extension is a strength of application management architectures. These architectures are designed for extension through the addition of new agents and through the addition of new events defined using primary development tools.
  6. Comprehensive Architecture. Application management architectures can address all of the five management functions. There are no currently shipping examples of architectures that fulfill this goal, but the promise is there.

Summary Chart: The Four Approaches and the Requirements


The Fourth Approach Stands Out The following chart summarizes how well the four approaches to application management meet the six requirements outlined above. Of the four approaches, the comprehensive application management architecture is the strongest-by design. These architectures are designed to satisfy the requirements of direct application management. The table employs a simple grading system. For each criteria, an approach receives a score of weak, strong, or not addressed. A brief explanation is also provided.

Requirement
Approach #1
Conventional Management
Approach #2
Application Management APIs
Approach #3
Database Server Manager
Approach #4
Application Management Architecture
1. Simple generation of application specific management events. Weak.
Arcane development interfaces only.
Weak.
Development interfaces require high skill.
Weak.
Development interfaces require high skill.
Strong.
By design; via development tools.
2. Support for management of multiple applications. Weak.
Conventional management systems don't recognize applications.
Strong.
APIs designed to support multiple applications.
Strong.
Designed to support multiple database applications.
Strong.
By design.
3. Support for external management systems. Weak.
Support only for SNMP and/or CMIP.
Weak.
Initial versions support limited range of systems.
Weak.
Vendors have interest in limiting integration with other products.
Strong.
Architecture relies on agents, a flexible approach.
4. Scaleable architecture. Strong.
With some limits for SNMP platforms.
Not Addressed.
Scalability depends on implementation of the API, and will vary.
Strong.
Products are designed to manage large distributed
database environments.
Strong.
The architecture includes infrastructure for data filtering and prioritizing.
5. Easily extensible architecture. Weak.
Extensions are not easy.
Weak.
APIs often provide extension facilities, but they are difficult to use.
Weak.
Custom extensions are not easy.
Strong.
Extension by addition of agents and events using 4GL-like facilities.
6. Comprehensive architecture. Weak.
Most solutions are limited to fault management.
Weak.
APIs are vendor-centric, and don't support the 5 disciplines.
Weak.
Focus is on database server code.
Strong.
Includes support for the five disciplines.

Unify's AppMan: A Prototypical Application Management Architecture


AppMan: A Comprehensive Architecture for Direct Application Management Unify Corp.'s AppMan is a prototypical application management architecture. AppMan supplements Unify's VISION application development and execution environment, providing links between the development tools, running applications, and external management products. AppMan assumes that organizations prefer to manage applications using the same tools they employ to monitor and control systems and networks. Unify does not seek to replace these tools. The result: Centralized management of client/server applications, systems, and networks. AppMan is an architecture to enable direct monitoring, control, and tuning of application modules. Unify designed AppMan after initially setting out to integrate Unify with individual third-party management products. The company quickly realized that a general architecture to integrate tools with management platforms and applications was preferable to pairwise integration efforts. [AppMan is now included with the VISION development environment]. However, AppMan is actually independent of development tools. In the future, it could be used to support a variety of development tools. Independence is a good test of an architecture's quality and completeness. AppMan is designed to move information from development environments-Unify VISION, in the first case-to management tools. AppMan takes events and other information generated by tools on the front-end, collects that information, and passes the information to management tools, transforming its format as needed. The heart of the architecture is a series of agents (see Illustration AM-5). The product also includes a toolkit for creating agents, and a runtime environment.

AppMan Agents Agents are the interface between AppMan and external management systems. An AppMan agent accepts information from the AppMan runtime environment, and generates file formats, message formats, and other data structures required by an external management system. Each agent addresses a management discipline, such as fault management or performance management, and a format for information within that discipline. For example, the first release of AppMan will include an agent for Tivoli Courier, a software distribution application. The Courier agent addresses software distribution functions within Tivoli's formats and conventions for that management discipline. Some agents are runtime facilities. Event and performance management, for example, operate as applications run, collecting information and statistics in real-time, and forwarding that information to external tools. Developers make use of other agents at deployment time. The software distribution agent is a deployment-time agent. Unify's use of agents is a variation on the traditional manager-agent architecture, in which agents represent individual managed objects. In AppMan, agents represent external management systems. The variation suits the purpose, and the design is very flexible. The beauty of agent-based architectures is that agents can come and go as needed to accommodate new capabilities, new vendors, and new user requirements.
External Management Systems Supported by Unify AppMan Unify assumed, in designing AppMan, that customers will want to support many third-party management products without having to build agents themselves. This is a good assumption. Unify will provide several pre-built AppMan agents to support immediate integration with the management platforms listed in the table below. Unify also plans to make other agents available in the second release of AppMan.

Management Category
Management Product
Fault Management Tivoli Enterprise Console
BMC Patrol
SNMP consoles
Performance Management Hewlett-Packard PerfView
Hewlett-Packard Measureware
Hewlett-Packard Transaction Tracker
BMC Patrol
SNMP
Software Distribution Tivoli Courier
Microsoft System Management Server
Security Management Future capability
Asset Management Future capability
The Agent Toolkit and the APIsThe AppMan Agent Toolkit gives developers the means to create their own agents. The basis for the toolkit is Unify's documented APIs for agents. The APIs define the functions required to build agents to address management functions. Unify has segmented the management disciplines into six management functions: event management, performance management, software distribution, security, administration, and software asset management. The AppMan Agent Toolkit is a C-language facility.
The AppMan Runtime Environment AppMan has a runtime environment to support the operation of agents and the gathering of management information from applications. The AppMan runtime is designed to scale, using the concept of active forwarding. The runtime collects events and statistics about a running application, and, at a user-defined interval, forwards the information to a given agent. The agent then forwards the information to the external management system. This design is efficient, and relatively unobtrusive to the application's processing. AppMan does not require constant polling of agents to obtain information about applications. Polling is the design employed in SNMP systems, and it has been proven to sap network resources. The AppMan runtime environment also solves a short-term platform coverage gap for users. Most Unify VISION applications are deployed on Windows clients and Unix servers. To monitor, control, and tune these applications, users must collect information from multiple platforms. Unfortunately, most of the client/server management products are just becoming available for Windows 3.x and Windows 95 clients, and that means there will be a gap in platform coverage during 1996. Unify is filling this gap with a small Windows proxy agent, or client, in the first release of AppMan. Within a year, however, Unify expects to use the infrastructures provided by third-party management tools.
Using AppMan: The Link to Unify For Unify VISION developers, AppMan will appear to be an extension of their development environment-if they see it at all. Developers will see AppMan only when performing software distribution and when designing custom events. Unify's primary goal in building AppMan was unlocking the management data that VISION collects as a matter of course, and making that information available to external management systems. VISION exposes 400 events and 60 performance management statistics. Some examples include:
  • Notification that application is out of memory.
  • Notification of physical I/O error.
  • Notification that a data type mismatch has occurred between two operands.
  • Notification of database network error.
  • Notification of database deadlock.
  • Number of messages sent and received.
  • Amount of system resources used by a module.
  • Amount of bytes passing into module (and passing out of a module).
  • Amount of system resources used by a method.
  • Database response time, by module, object, and method.
The VISION 4GL allows developers to define custom events and performance statistics. To define an event, a developer gives it a name, and then identifies the conditions that will give rise to that event. For example, a developer might want to track performance across a subset of an application's functions or raise an event after a user fails to provide a correct password on three consecutive tries. Developers use AppMan's Deployment Configurator tool to make use of external software distribution systems. The Deployment Configurator is a visual tool for identifying the components-libraries, database connections, help files, and so forth-included in an application module, or partition. The tool then creates a neutral description of the module, and passes that description to a software distribution agent. The agent is responsible for transforming the neutral description of the module into the format required by an external distribution system. For example, Tivoli Courier's format is called a File Pack. Microsoft SMS's format is the Package Description File (PDF).
AppMan Console: A Basic Facility Unify also ships a basic console with AppMan-strictly for the sake of customer convenience. The AppMan Console is not a general-purpose application management environment, such as Tivoli Enterprise Console or BMC's Patrol. Rather, it is a tool to ease management of VISION application partitions. The AppMan Console supports visual display, deployment, starting, stopping, and restarting partitions. In the future, Unify plans to also include basic fault and performance management viewing in its console. [Included in Unify VISION 3.0] .
Unify AppMan Compared to the Competition Unify's approach to direct application management is more comprehensive than the solutions offered by other development tools vendors. Forté and Oracle, for example, are adding direct application management features to their environments. However, both companies support a subset of the management functions supported by AppMan. Neither Forté nor Oracle has built a comprehensive architecture for supporting external management systems, either, although they offer pairwise integration with specific products. PowerSoft is also pursuing pairwise integration-with Tivoli. The two companies are working together to build support for Tivoli's Application Management Specification into PowerBuilder. This is a useful effort. However, it is not a general architecture that allows PowerSoft to integrate its tools easily with a variety of third-party management tools.

Conclusions


Insist on a Comprehensive Architecture for Direct Application Management As organizations continue to employ client/server technology for their most important new applications, the monitoring, control, and tuning of those applications has become a crucial need. The new reality of client/server is the need for management facilities that are efficient, expandable, and easy to use. Meeting this need will require new thinking about management.

Application management is not necessarily detective work using evidence gathered from low-level network devices and operating systems. It is direct monitoring, control, and tuning of application modules. Application management is also not restricted to software distribution and configuration control. Application management is a comprehensive problem, requiring a carefully designed solution. The presence of existing tools and skill sets means that neither application developers nor development tools vendors can offer isolated solutions. They must be adaptable.

One approach to client/server application management stands out from all of the others: the comprehensive architecture discussed in this paper. The other alternatives aren't real alternatives at all, although they are positioned as such by vendors. Only the direct application management architecture allows management to be built into client/server modules without requiring big new investments in technology and skills. Only direct application management architectures ensure that management of client/server modules will complement existing investments in monitoring and control technology. When evaluating client/server management solutions, insist on an architecture that addresses the problem by design. Insist on a comprehensive architecture, not a partial solution or piecemeal approach.


[Press Releases | Careers | Products | Corporate Info | Doing Business | Services | Home Page]
Seybold Application Management White Paper
Copyright 1995 by Patricia Seybold Group, Inc.
This Web Page Last Revised: 29-Jul-1996
If you have any questions, comments or suggestions regarding our World Wide Web site, please send them to: webmaster@unify.com

Unify Corporation, World Headquarters: 181 Metro Drive, 3rd Floor, San Jose, CA 95110 USA Phone: (408) 467-4500 Fax: (408) 467-4511